Recording device, recording method, and computer-readable program

ABSTRACT

In a recording device, a playback buffer is provided between a TS decoder and an AV decoder and an internal memory is provided within the AV decoder. This being so, a video frame which is being played precedes a video frame which is being received, by about six frames. This time interval between reception and playback poses a problem when manual recording is performed. To solve the problem, the same video frames which are to be played by the AV decoder are stored in a record buffer. In this way, even if the time interval exists between reception and playback, the currently played video frame and subsequent video frames can be read from the record buffer and written onto an HDD.

[0001] This application is based on an application No. 2002-113001 filed in Japan, the contents of which are hereby incorporated by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to a recording device for recording a digital broadcast onto a random-access recording medium such as an HDD or a DVD in compressed form, a recording method used by the recording device, and a computer-readable program that realizes the functions of the recording device. The invention in particular relates to improvements in recording digital broadcast data in response to a user's manual operation.

[0004] 2. Background Art

[0005] In recent years, television broadcasting is undergoing a transition from analog to digital. This ongoing transition indicates that models which support for digital broadcasting will become the dominant form of recording devices. In digital broadcasting, video of a television program is transmitted via a channel in compressed form. Such compressed video takes the form of transport stream (TS) packets. Digital broadcast-ready recording devices record the video onto a recording medium in this TS packet form. Since there is no quantization loss associated with encoding/decoding operations, the recording devices can record the video with high picture quality.

[0006] Meanwhile, playback of a television program which is broadcast by digital broadcasting differs from playback of a television program which is broadcast by analog broadcasting on the following point. In digital broadcasting, there is a substantial time interval between reception and playback. That is to say, a video frame which is being played back is a video frame that was received earlier than a video frame which is being received.

[0007] This time interval is caused by a buffering delay. In digital broadcast playback systems, TS packets equivalent to a time period of about one second need be accumulated in a buffer to obtain frame data which is to be decoded. This causes a-buffering delay, which results in a time interval between reception and playback. This time interval between reception and playback poses a problem when the user performs manual recording. Manual recording refers to an operation of recording data which is triggered by the user's record request. The user performs manual recording while viewing playback of a video frame. The user's intension here is to record the currently-played video frame onward. However, the currently-played video frame was received well before the currently-received video frame due to the above time interval between reception and playback, so that the recording device cannot immediately obtain the currently-played video frame. This being so, the recording device begins recording from the currently-received video frame onward. This causes first several video frames to be missing in the recording. Though the number of missing video frames is not high, this is a serious detriment to the performance of digital broadcast-ready models as compared with analog broadcast-ready models. In analog broadcasting, a video frame which is being played is approximately the same as a video frame which is being received. Therefore, a loss of first several images does not occur when manual recording is performed. A failure of digital broadcast-ready models, which are supposed to be the latest in broadcast recording technology, to achieve the same function as analog broadcast-ready models may lower their popularity on the ground that the performance of digital broadcast-ready models is poorer than that of their analog counterparts. This seriously affects manufacturers' marketing strategies in expectation of replacement demand for digital broadcast-ready models.

SUMMARY OF THE INVENTION

[0008] The present invention has an object of providing a recording device that can perform manual recording without a loss of frame data even if there is a significant buffering delay.

[0009] The stated object can be achieved by a recording device which records packets onto a recording medium in response to a record request made by a user who is viewing a playback of a digital broadcast that is broadcast by sequentially transmitting a plurality of packets, the playback of the digital broadcast having a buffering delay associated with accumulation of a group of packets in a playback buffer and conversion of the group of packets into video frames to be played back, the recording device including: a record buffer; a copying unit operable to copy the group of packets into the record buffer; and a recording unit operable to, when the user makes the record request, record the group of packets stored in the record buffer onto the recording medium, and further record groups of packets received following the group of packets onto the recording medium.

[0010] According to this construction, the same packets as those output to a decoder are stored in the record buffer. Therefore, when the user performs manual recording, the group of packets corresponding to the currently-played video frame is read from the record buffer and written on the recording medium. Thus, even if the currently-played video frame is a video frame that was received earlier than the currently-received video frame, video can be recorded on the recording medium without a loss of video frames.

[0011] This writing from the record buffer onto the recording medium is triggered by neither a copy operation of copying from one medium to another nor an edit operation of editing data recorded on one medium. Rather, the writing is triggered by a record operation that is performed in conventional VCRs. Accordingly, even if the user is not prepared to perform a copy operation or an edit operation or the user is only used to handle conventional VCRs, he or she can record frame data from the record buffer onto the recording medium by performing a record operation upon viewing a desired scene.

[0012] Here, if the record buffer becomes full, the copying unit may copy a newly received group of packets over an oldest group of packets in the record buffer.

[0013] According to this construction, the amount of memory can be reduced.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014] These and other objects, advantages and features of the invention will become apparent from the following description thereof taken in conjunction with the accompanying drawings which illustrate a specific embodiment of the invention.

[0015] In the drawings:

[0016]FIG. 1 shows an inner construction of a recording device to which the invention relates;

[0017]FIG. 2 shows a representation of a buffering delay caused by a playback buffer and an AV decoder shown in FIG. 1;

[0018]FIG. 3 shows frame data stored in the form of TS packets in a record buffer shown in FIG. 1, when frame data of 05:01 is being decoded by the AV decoder and frame data of 06:04 is being received by a TS decoder;

[0019]FIG. 4 shows frame data written in the form of TS packets on an HDD shown in FIG. 1, when frame data of 05:01 is being decoded by the AV decoder and frame data of 06:04 is being received by the TS decoder;

[0020]FIG. 5 is a flowchart showing an operation procedure of the TS decoder;

[0021]FIGS. 6 and 7 are a flowchart showing an operation procedure of a system controlling unit shown in FIG. 1;

[0022]FIG. 8 shows a representation of a process of searching the record buffer for a GOP based on the current display time notified by the AV decoder;

[0023]FIG. 9 shows frame data written in the form of TS packets on the HDD, when frame data of 05:06 is being decoded by the AV decoder; and

[0024]FIG. 10 shows a representation of a process of searching the record buffer for a GOP based on the current display time notified by the AV decoder, in the second embodiment of the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0025] The following describes embodiments of a recording device of the present invention. First, an example application of the recording device is explained below.

[0026] The recording device of the present invention constitutes a home server system together with a television and a remote control. The recording device is used to perform manual recording of a broadcast that is being displayed on the television.

[0027] The broadcast to be recorded here is a digital television broadcast. In digital television broadcasting, one video frame has a time length of about 33 msec (1/29.97 sec to be exact). Data represented by a video frame is frame data.

[0028] In digital television broadcasting, frame data is picture data for displaying one complete image. Picture data can be classified into three types. B (Bidirectionally Predicted) pictures are interframe-coded with reference to past and future pictures. P (Predicted) pictures are interframe-coded with reference to past pictures. I (Intra Coded) pictures are intraframe-coded using spatial frequency characteristics within one frame, without reference to other pictures. A GOP (Group of Pictures) is the smallest decodable unit in television broadcasting. A GOP includes at least one I picture and has a playback time period of around 0.5 to 1.0 sec.

[0029]FIG. 1 shows an inner construction of the recording device of the present invention. As illustrated, the recording device is roughly made up of an HDD 1, a digital tuner 4, a TS decoder 5, an AV decoder 6, a playback buffer 7, a record buffer 8, a buffer management table 9, a user interface unit 10, and a system controlling unit 11.

[0030] The HDD 1 is a random-access recording medium. A stream file is recorded on the HDD 1. Also, the HDD 1 is used for storing a GOP management table 2 and playback section information 3.

[0031] The stream file stores TS packets in units of GOPs, which are recorded in accordance with the user's record request.

[0032] The GOP management table 2 contains information (a record) about each GOP stored in the stream file. Each record includes an offset of a GOP from the beginning of the stream file, a size of the GOP, and a first PTS of the GOP, and is used when special playback such as a jump is conducted.

[0033] The playback section information 3 specifies a playback section on the stream file, using a combination of a playback start time and a playback end time. The stream file stores the TS packets in units of GOPs. On the other hand, the playback start time and playback end time in the playback section information 3 specify the playback section on the stream file in units of video frames (1/29.97 sec).

[0034] The digital tuner 4 receives a digital signal transmitted from a broadcast station, and outputs a full transport stream.

[0035] The TS decoder 5 demultiplexes the full transport stream output from the digital tuner 4. In detail, the TS decoder 5 separates TS packets having a designated PID, from a plurality of TS packets that are multiplexed in the full transport stream. This is done in the following way. The TS decoder 5 receives designation of a PID from the system controlling unit 11, and writes only TS packets having the designated PID among the plurality of TS packets in the full transport stream into the playback buffer 7 and the record buffer 8. The reason of writing TS packets to not only the playback buffer 7 but also the record buffer 8 is to copy in the record buffer 8 the TS packets which are to be decoded by the AV decoder 6. Since the output speed of the TS decoder 5 is high, the TS decoder 5 can easily write one TS packet into both buffers. In addition to demultiplexing, the TS decoder 5 has a GOP detection function.

[0036] The GOP detection function is a function of detecting the beginning of a GOP in the TS packets which are obtained by demultiplexing. This is done by detecting a random access indicator in an adaptation field of a TS packet. The adaptation field shows information about a system layer of a video stream. The random access indicator shows that an access point of the video stream occurs in a payload of the TS packet. The access point is the beginning of an independent decodable unit in the video stream, that is, the beginning of a GOP. This being so, the random access indicator shows that the first frame (I picture) of a GOP exists in the payload of the TS packet. By detecting such random access indicators, it is possible to find out which TS packets constitute one GOP. This GOP detection function is not a general feature of TS decoders, but is added to the TS decoder 5 of this embodiment.

[0037] In this way, it is possible to obtain the size of each GOP in the form of TS packets.

[0038] The AV decoder 6 includes a system decoder, an audio decoder, a video decoder, and an internal buffer. The system decoder divides the TS packets obtained from the TS decoder 5, into audio data and frame data. The audio decoder decodes the audio data. The video decoder decodes the compressed frame data in the form of TS packets, to decompress it. The internal buffer is used to store frame data of two frames, to rearrange the decompressed frame data in display order. The data decoded by the video decoder and the audio decoder is sent to the television connected with the recording device.

[0039] Here, TS packets are input to the AV decoder 6 so as not to underflow the internal buffer. Basically, the broadcast station transmits the transport stream so as not to underflow the internal buffer in the AV decoder 6. Accordingly, the AV decoder 6 never underflows unless an abnormal event such as a fault on a channel occurs.

[0040] The playback buffer 7 is a dual port FIFO memory. The playback buffer 7 is provided between the TS decoder 5 and the AV decoder 6. TS packets obtained by demultiplexing in the TS decoder 5 are accumulated in the playback buffer 7. Here, TS packets stored in the playback buffer 7 are equivalent to frame data of one GOP. With the provision of this playback buffer 7, the AV decoder 6 can obtain a GOP in compressed form.

[0041] Since not only the playback buffer 7 is present between the TS decoder 5 and the AV decoder 6 but also the internal buffer is present in the AV decoder 6, the recording device has a significant buffering delay. FIG. 2 shows a representation of such a buffering delay caused by the playback buffer 7 and the AV decoder 6. In the drawing, “xx:yy” denotes the “yy”th frame of the “xx”th second (the number of frames for one second is set at 30 in this example). As can be seen from the drawing, three sets of frame data (05:01 to 05:03) of one GOP are buffered in the internal buffer of the AV decoder 6, and the remaining sets of frame data (05:04 to 05:30) of the GOP are buffered in the playback buffer 7. This being the case, there is a buffering delay of about one second between the TS decoder 5 and the television.

[0042] The record buffer 8 is a DRAM, an SDRAM, an RDRAM, or the like, and is used as a ring buffer. In more detail, the record buffer 8 stores a plurality of TS packets, from a TS packet which was received a few seconds ago up to a TS packet which is being received. Accordingly, the record buffer 8 has a size that is an integer multiple of one TS packet. The plurality of TS packets stored in the record buffer 8 constitute GOPs. Since the record buffer 8 is a ring buffer, if the record buffer 8 becomes full, the TS decoder 5 writes a new TS packet over the oldest TS packet in the record buffer. This enables the record buffer 8 to constantly store a new sequence of TS packets.

[0043]FIG. 3 shows frame data stored in the record buffer 8 in the form of TS packets, when frame data of 05:01 is being decoded by the AV decoder 6 and frame data of 06:04 is being received by the TS decoder 5. As shown in the drawing, the record buffer 8 stores TS packets corresponding to frame data of 05:01 to 05:30 (which belong to GOP#K+1). The record buffer 8 also stores TS packets corresponding to frame data of 06:01 to 06:02 (which belong to GOP#K+2) and TS packets corresponding to frame data of 04:01 to 04:30 (which belong to GOP#K).

[0044] The buffer management table 9 shows a first PTS and a start address on the record buffer 8 (buffer address), for each GOP stored in the record buffer 8. This buffer management table 9 is generated by the system controlling unit 11. The buffer management table 9 provides correspondence between PTSs and buffer addresses in the record buffer 8. This enables a buffer address of a GOP to be detected from a PTS, with it being possible to read a GOP corresponding to a video frame that is being played. The contents of the buffer management table 9 when GOP#K, GOP#K+1, and GOP#K+2 are stored in the record buffer 8 are shown in FIG. 3. In this buffer management table 9, the first PTSs (04:01, 05:01, and 06:01) of GOP#K, GOP#K+1, and GOP#K+2 are associated with the buffer addresses (adr1, adr2, andiadr3) of GOP#K, GOP#K+1, and GOP#K+2.

[0045] The user interface unit 10 is a user interface that is compatible with conventional VCRs. The user interface unit 10 receives user operations such as select, record, playback, and stop, which are made by pressing keys on the remote control or front panel as in the case of conventional VCRs. When the user interface unit 10 receives a record operation from the user, writing of TS packets from the record buffer 8 onto the HDD 1 is carried out.

[0046] The system controlling unit 11 is a general-purpose microcomputer system equipped with a CPU, an ROM, and an RAM. The system controlling unit 11 has a function of controlling playback by the AV decoder 6 and a function of controlling writing onto the HDD 1. These functions are realized by the CPU executing a program stored in the ROM. In detail, the system controlling unit 11 executes the write control as follows. When the user makes a record request via the user interface unit 10, the system controlling unit 11 inquires of the AV decoder 6 about the current display time. The system controlling unit 11 then searches the record buffer 8 for a GOP which contains frame data corresponding to the current display time, and writes the GOP and subsequent GOPs onto the HDD 1 in the form of TS packets. FIG. 4 shows frame data which is written on the HDD 1 in the form of TS packets, when the frame data of 05:01 is being decoded by the AV decoder 6 and the frame data of 06:04 is being received by the TS decoder 5. As shown in the drawing, the TS packets corresponding to the frame data of 05:01 to 05:30 are stored in the record buffer 8. Since the frame data of 05:01 which is being decoded is the first frame of GOP#K+1, the frame data of 05:01 and subsequent frame data are read from the record buffer 8 and written onto the HDD 1, as indicated by arrow yf1.

[0047] The recording device having the above construction operates in the following manner.

[0048]FIG. 5 is a flowchart stowing an operation procedure of the TS decoder 5. This flowchart includes an event wait loop which waits for reception of a TS packet (S1). If a TS packet is received, steps S2-S9 are executed before returning to step S1.

[0049] Steps S2-S9 include steps S2-S4, which are followed by a step of writing the TS packet in a write address of the playback buffer 7 (55) and a step of writing the TS packet in a write address of the record buffer 8 (S6).

[0050] In step S2, the TS decoder 5 judges whether the received TS packet has a PLD designated by the system controlling unit 11. If not, the TS decoder 5 returns to step S1.

[0051] In step S3, the TS decod er 5 judges whether the header of the TS packet contains a random access indicator. If so, the TS decoder 5 notifies the system controlling unit 11 of an address and first PTS of a GOP (S4), before advancing to step S5.

[0052] Steps S7 and S8 both relate to updating the write address of the record buffer 8. Step S9 determines whether step S7 or S8 should be performed. In step S9, the TS decoder 5 judges whethir the sum of the write address and the TS packet size is no smaller than the end address of the record buffer 8. If the sum of the write address and the TS packet size is smaller than the end address, the TS decoder 5 sets the sum of the write address and the TS packet size as a new write address (S7). Otherwise, the TS decoder 5 sets the tart address of the record buffer 8 as a new write address (S8). As a result, the next TS packet is written over the oldest TS packet in the record buffer 8. In this way, the record buffer 8 functions as a ring buffer. In this embodiment, the size of the record buffer 8 is an integer multiple of the TS packet size. Accordingly, the start address of the record buffer 8 is set as a new write address in step S8. Suppose the size of the record buffer 8 is not an integer multiple of the TS packet size. In such a case, the TS packet is divided into a first portion and a second portion, with the first portion being written from the write address up to the end address and the second portion being written from the start address.

[0053]FIGS. 6 and 7 are a flowchart showing an operation procedure of the system controlling unit 11. The operation of the system controlling unit 11 is predicated on the above operation of thy TS decoder 5. The operation of the system controlling unit 11 is realized by the CPU reading this procedure written in a computer description language.

[0054] Steps S11 to S15 relate to designating a PID to the TS decoder 5. In detail, the system controlling unit 11 waits for the user's channel selection (S11). Upon receiving the channel selection, the system controlling unit 11 controls the digital tuner 4 to receive the selected channel (S12), and waits for detection of a PAT/PMT (S13). When the PAT PMT are detected, the system controlling unit 11 analyzes them to acquire a PID (S14). The system controlling unit 11 then controls the TS decoder 5 to extract TS packets having this PID (S15). Following this, the system controlli g unit 11 performs a loop of steps S16 and S17. This loop is an event wait loop which waits for the user to press a RECORD key (S16) or for the TS decoder 5 to acquire a first PTS and buffer address of a GOP (S17). If the first PTS and buffer address of the GOP are notified by the TS decoder 5 (S17:YES), the system controlling unit 1 writes them to the buffer management table 9 (S18). The system controlling unit 11 then controls the AV decoder 6 to read and play a GOP from the read pointer of the playback buffer 7 onward (S19). The system controlling unit 11 updates the read pointer of the playback bu fer 7 (S20), and returns to the loop of steps S16 and S17. As a result of steps S16-S20, images are sequentially displayed on the television for the user to view.

[0055] If the user presses t e RECORD key (S16:YES), the system controlling unit 11 launches writing GOPs onto the HDD 1. Steps S21-S24 a e executed prior to this GOP write operation, to specifr a GOP (GOPi) to be written onto the HDD 1. In detail, the system controlling unit 11 inquires of the AV decoder 6 about the current display time (S21). Having acquired the current display time (S22:YES), the system controlling unit 11 searches the buffer management table 9 figr a PTS that is earlier than and closest to the current display time (S23). The system controlling unit 11 then sets a GOP specified by the PTS as GOPi (S24).

[0056]FIG. 8 shows a repre entation of a process of specifying a GOP in the recori buffer 8 based on the current display time notified by the AV decoder 6. Suppose frame data that belongs to GOP#K+1 is being decoded by the AV decoder 6 as indicated by arrow gt1. This being the case, the system controlling unit 11 obtains a buffer address of GOP#K+1 from the buffer management table 9, and sets the read pointer of the record buffer 8 to the obtained buffer address.

[0057] Steps S25 and S26 relate to creating the stream file, the GOP management table 2, and the playback section information 3. In detail, the system controlling unit 11 creates the stream file, the GOP management table 2, and the playback section information 3 (S25), and sets the current display time a quired from the AV decoder 6 as the playback start time of the playback section information 3 (S26).

[0058] After this, the system controlling unit 11 executes the GOP write operation. Steps S31-S33 relate to this GOP write operation. In delail, the system controlling unit 11 acquires the buffer address of GOPi from the buffer management table 9 and sets it as the read pointer of the record buffer 8 (S31). The system controlling unit 11 then writes GOPi from the read pointer of the record buffer 8 onward into the stream file (S32), and updates the read pointer (S33). Steps S34 and S35 relate to updating the playback section information 3 and the GOP management table 2 in association with the GOP write operation. In detail, the system controlling unit 11 sets a PCR of GOPi as the pla back end time of the playback section information 3 (S34). The system controlling unit 11 then writes an offset of GOPi in the stream file, a size of GOPi, and a first PTS of GOPi to the GOP management table 2 as the ith record (record i) (S35).

[0059] The reason of setting the playback start time of the playback section information 3 in the above manner is to resolve any gap which ma y exist between the beginning of a GOP and the current display time. Suppose the current display time acquired from the AV decoder 6 is at some midpoint of a GOP. This being so, when playing back the video recorded on the HDD 1, it is necessary to prohibit playback of frame data from the beginning of the GOP up to that midpoint. In view of this, the playback section information 3 specifies the playback section in units of video frames, with the current display time acquired from the AV decoder 6 being set as the playback start time. By doing so, video f ames which belong to the GOP but do not belong to the playback section will not be played back.

[0060]FIG. 9 shows the stream file and the playback section information 3 in the HDD 1, when the system controlling unit 11 acquires the current display time of 05:06 from the AV decoder 6. Since the frame data of 05:06 belongs to GOP#K+1 which ranges from 05:01 to 05:30, the buffer address of GOP#K+1 is obtain ed from the buffer management table 9. As a result, the frame data of 05:01 that is the first frame of GOP#K+1 and subsequent frame data are written into the stream file. Meanwhile, the current display time of 05:06 is set as the playback start time in the playback section information 3.

[0061] Step S36 is a step of etting the oldest GOP among remaining GOPs in the record buffer 8 as new GOPi. After this, the system controlli g unit 11 returns to steps S31-S35. Thus, steps S31-S36 are repeated if a GOP remains in the record buffer 8. In this way, the GOPs stored in the record buffer 8 are sequentially written into the stream file. In each repetition, the playback end time in the playback sect ion information 3 is updated using a PCR of GOPi (S34), and an offset of GOPi in the stream file, a size of GOPi and a first PTS of GOPi are added to the GOP managemen table 2 as record i (S35).

[0062] In step S37, the system controlling unit 11 judges whether a GOP remains in the record buffer 8. If no GOP remains in the record buff r 8, the system controlling unit 11 judges whether detection of a GOP is notified by the TS decoder 5 (S38). If so, the system controlling unit 11 sets the GOP which i!3 stored in the record buffer 8 by the TS decoder 5 as new GOPi (S39), and returns to step S31.

[0063] In step S40, the system controlling unit 11 judges whether the user presses a STOP key (S40). If so, the system controlling unit 11 inquires of the AV decoder 6 about the current display time (S41), and waits for receiving the current display time (S42). The system controlling unit 11 then sots the current display time as the playback end time in the playback section information 3 (S43).

[0064] After this, the system controlling unit 11 writes GOPi from the read pointer onward into the stream file (S44), and adds an offset of GOPi in the stream file, a size of GOPi, and a first PTS of GOPi to the GOP management table 2 as record i (S45). The system controlling unit 11 then closes the stream file (S46), thereby completing the operation.

[0065] According to this embodiment, the TS decoder 5 stores the same TS packets as those output to the AV decoder 6, in the record buffer 8. Accordingly, when the user performs manual recording, frame data which is being played can be read from the record buffer 8 and written onto the HDD 1. Thus, even if there is a time interval between reception and play back, video can be recorded onto a recording medium without a loss of video frames.

[0066] It is noted that this w iting from the record buffer 8 onto the HDD 1 is triggere by neither a copy operation of copying from one medium to another nor an edit operation of editing data recorded cn one medium. Rather, the writing is triggered by a record operation which is performed in conventional NCRS. This being so, even if the user is not prepared to perform a copy operation or an edit operation or the user is only used to handle conventional VCRs, he or she can record frame data from the record buffer 8 onto a recording medium by performing a record operation upon viewing a desired scene.

[0067] Second Embodiment

[0068] In the first embodiment, recording begins with a GOP that includes frame data corresponding to the current display time. However, if he frame data corresponding to the current display time is a B picture that is located in a beginning portion of the GOP, a reference I or P picture which is included in a previous GOP is needed to decode the B picture. The second embodiment deals with such a case.

[0069] In more detail, when the current display time is notified from the AV decod r 6, the system controlling unit 11 sets not a GOP that includes frame data corresponding to the current display time but an immediately preceding GOP, as GOPi. The system controlling unit 11 then obtains a buffer address of GOPi from the buffer management table 9, sets the read pointer of the record buffer 8 to the obtained buffer address, and writes frame data from he read pointer onward onto the HDD 1.

[0070]FIG. 10 shows a representation of a process of specifying a GOP in the recor buffer 8 based on the current display time notified by the AV decoder 6, in the second embodiment. When frame date corresponding to the current display time belongs to GOP#K+1 as indicated by arrow gt2, not GOP#K+1 but immedi tely preceding GOP#K is set as GOPi. This enables the frame data corresponding to the current display time to be decoded, even when the frame data is a B picture that refers to a P picture in GOP#K as indicated by arrow rr1.

[0071] Modifications

[0072] The present invention has been described by way of the above embodiments, thou jh these embodiments are mere examples of systems that are presently expected to operate favorably. It should be obvious that various modifications can be made without departing from the technical scope of this invention. Six representative examples of such modifications are given below.

[0073] (A) The above embodiments describe the recording device that is connected with a television and put to use. As an alternative, t fe recording device may be integrated with a liquid crystal display. Also, the above embodiments describe the case where the TS decoder 5 and the AV decoder 6 are inc uded in the recording device, but they may be connected to the recording device via an IEEE 1394 connector. F irthermore, the recording device may include only the system controlling unit 11 that plays a key role in the above processing.

[0074] Since the recording den ice of the above embodiments is an invention described in this specification, an act of manufacturing a recording device based on the inner construction of the recording device described in these embodiments is an act of working of the present invention. Also, any act of assigning f ar sale or for free, leasing, or importing the recording device is an act of working of the present invention. Likewise, an act of offering for assignment or lease of the recording device using storefront displays, catalogs, or brochures is an act of working of the present invention.

[0075] (B) Information processing using the programs shown in FIGS. 5 to 7 is actually realized by hardware resources such as a CPU, an MPEG encoder, and an HDD. Which is to say, the recording device of the above embodiments is realized whereby specific means that is provided with software and hardware perf rms information processing in accordance with the intended use.

[0076] Given that the information processing by the programs is actually realized by the hardware resources, the programs shown in the above flowcharts can be regarded as a creation of technical ideas by which a law of nature is utilized. This means thB programs themselves are an invention. In other words, the procedures shown in the above flowcharts represent an act of working of the programs of the present invention.

[0077] The above embodiments describe the case where the programs are incorporated in the recording device. However, the programs can be used independently of the recording device. Acts of working of the programs include (1) an act of manufacturing, (2) an act of assigning for sale or for free, (3) an act of leasing, (4) an act of importing, (5) an act of providing to the public via a bi-directional electronic communication network, and (6) an act of offering for assignment or lease using storefront displays, catalogs, or brochures.

[0078] Examples of the act (5) include an act in which a provider sends a program to a user (program download service) and an act in which a provider provides only the function of a program to a user via an electronic communication network without sending the program itself (function provision ASP service).

[0079] (C) The time elements of the steps which are executed in a time series in each of the above flowcharts can be regarded as the necessary elements of the present invention. This being so, a recording method shown by these flowcharts is an invention. If the processing shown in each flowchart is carried out by performing the steps in a time series so as to achieve the intended use, this is an act of working of the recording method of the present invention.

[0080] (D) The above embodiments describe an example where an HDD is used as a recording edium. However, the present invention is not limited tD the use of this recording medium. The same effects can still be achieved even when other recording media which have a capacity of recording a broadcast program like ati HDD are used. Examples of such recording media inclu e: an optical disc such as a CD-R, a CD-RW, a DVD-R, a DVD-RW, a DVD-RAM, a DVD+R, a DVD+RW, or a Blue-ray disc a magneto-optical disc such as a PD or an MO; a semiconductor memory card such as an SD memory card, a Compact Flash card, a SmartMedia card, a Memory Stick card, a MultiMediaCard, or a PCMCIA card; a magnetic disk such as a fluxible disk, SuperDisk, Zip, or Clik!; and a removable HDD such as ORB, Jaz, SparQ, SyJet, EZFley, or Microdrive.

[0081] (E) The above embodiments describe the case where the TS decoder 5 writes fraine data to both the playback buffer 7 and the record buffer 8 since the input speed of the playback buffer 7 from the TS decoder 5 is higher than the output speed of the playback buffer 7 to the AV decoder 6. However, if the output speed of the playback buffer 7 is as high as the input speed of the playback buffer 7, frame data may be recorded on the HDD 1 directly from the playback buffer 7.

[0082] (F) The above embodiments describe the case where TS packets are recorded on the HDD 1 as they are, but TS packets to which extension headers have been added may instead be recorded.

[0083] Such an extension header is called TP_extra_header. TP_extra_header includes Arrival_Time_Stamp and copy_permission_indicator, and has a data length of 4 bytes.

[0084] Arrival_Time_Stamp shows time at which a TS packet reaches the recording device. Arrival_Time_Stamp is used as a reference to time stamps such as PCRs and PTSs when playing back a stream. In general, PCRs and PTSs are set in an MPEG2 transport stream transmitted from a broadcast station on a presumption that the transport stream is received and plays d in real time. In the case of store-and-playback mode, however, an MPEG2 transport stream is stored on an HD and played back after a substantial time delay. In such a case, the PCRs and PTSs which are set on a presumption that the transport stream is played in real time are invalid. In view of this, Arrival_Time_Stamp in TP_extra_header shows a time at which the TS packet reaches the recording device. By referring to this Arrival_Time_Stamp, even in store-and playback mode it is possible to play an MPEG2 transport stream by controlling the playback rate using PTSs and PCRs, as in the case of real time playback mode.

[0085] Copy_permission_indicator is copy control information used in MPEG2 digital transport streams. “00” indicates normal copy free, “11” indicates copy no more, “01” indicates unconditional copy free in encrypted form, and “10” indicates EPN-asserted copy free.

[0086] TS packets with exten ion headers are grouped in units of 32 and written in three sectors. A group of 32 TS packets with extension headers is 6144 bytes (=32×192(=188+4)), which is equal to the size of three sectors (=2048×3).

[0087] Although the present invention has been fully described by way of examples with reference to the accompanying drawings, it is to be noted that various changes and modifications will be apparent to those skilled in the art.

[0088] Therefore, unless such changes and modifications depart from the scope of the present invention, they should be construed as being included therein. 

What is claimed is:
 1. A recording device which records packets onto a recording medium in response to a record request made by a user who is viewing a playback of a digital broadcast that is broadcast by sequentially transmitting a plurality of packets, the playback of the digital broadcast having a buffering delay associated with accumulation of a group of packets in a playback buffer and conversion of the group of packets into video frames to be played back, the recording device comprising: a record buffer; a copying unit operable to copy the group of packets into the record buffer; and a recording unit operable to, when the user makes the record request, record the group of packets stored in the record buffer onto the recording medium, and further record groups of packets redeived following the group of packets onto the recording medium.
 2. The recording device of claim 1, wherein the record buffer also stores a group of packets received preceding the group of packets and a group of packets received follow ng the group of packets, the recording device further comprises: a buffer management talle which associates a display start time of video frames corresponding to each group of packets stored in the r cord buffer, with an address of each group of packets in the record buffer, the recording unit (a) acquires a display time of a video frame which is being played back when the user makes the record request, and (b) detects a display start time that is earlier than and closest to the acquired display time in the buffer management table, and the group of packets recorded by the recording unit is stored in the record buffer at an address associated with the detected display start time.
 3. The recording device of claim 2, wherein if the record buffer becomes full, the copying unit copies a newly received roup of packets over an oldest group of packets in the re ord buffer.
 4. The recording device of claim 3, wherein the video frame which is being played back was interframe-coded using another video frame as a reference.
 5. The recording device of claim 4, wherein the other videD frame is one of video frames corresponding to the preceming group of packets stored in the record buffer, and the recording unit also records the preceding group of packets stored in the rec rd buffer, onto the recording medium.
 6. A computer-readable pro gram which has a computer including a playback buffer and a record buffer record packets onto a recording medium in response to a record request made by a user who is viewing a playback of a digital broadcast that is broadcast by sequentially transmitting a plurality of packets, the playback of the digital broadcast having a buffering delay associated with accumulation of a group of packets in the playback buffer and conversion of the group of packets into video frames to be played back, the progra having the computer perform: a copying step of copying the group of packets into the record buffer; and a recording step of, when the user makes the record request, recording the group of packets stored in the record buffer onto the recording medium, and further recording groups of packets received following the group of packets onto the recording medium.
 7. The program of claim 6, wherein the record buffer also stores a group of packets received preceding the group of packets and a group of packets received following the group of packets, the program further has the computer perform: a generating step of g nerating a buffer management table which associates a display start time of video frames corresponding to each group of packets stored in the record buffer, with an address of each group of packets in the record buffer, the recording step (a) acquires a display time of a video frame which is beiag played back when the user makes the record request, a id (b) detects a display start time that is earlier than and closest to the acquired display time in the buffer management table, and the group of packets recorded by the recording step is stored in the record buffer at an address associated with the detected display start time.
 8. The program of claim 7, wherein if the record buffer becomes full, the copying step copies a newly received group of packets over an oldest group of packets in the record buffer.
 9. The program of claim 8, wherein the video frame which is being played back was interframe-coded using another video frame as a reference.
 10. The program of claim 9, wherein the other video frame is one of video frames corresponding to the preceming group of packets stored in the record buffer, and the recording step also records the preceding group of packets stored in the record buffer, onto the recording medium.
 11. A recording method, for use in a computer including a playback buffer and a record buffer, for recording packets onto a recording medium in response to a record request made by a user who is viewing a playback of a digital broadcast that is broadcast by sequentially transmitting a plurality of packets, the playback of the digital broadcast having a buffering delay associated with accumulation of a group of packets in the playback buffer and conversion of the group of packets into video frames to be played back, the recording method comprising: a copying step of copying the group of packets into the record buffer; and a recording step of, when the user makes the record request, recording the group of packets stored in the record buffer onto the recording medium, and further recording groups of packets received following the group of packets onto the recording medium. 